home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / vmalloc.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  54 lines

  1. #ifndef _LINUX_VMALLOC_H
  2. #define _LINUX_VMALLOC_H
  3.  
  4. #include <linux/spinlock.h>
  5. #include <asm/page.h>        /* pgprot_t */
  6.  
  7. /* bits in vm_struct->flags */
  8. #define VM_IOREMAP    0x00000001    /* ioremap() and friends */
  9. #define VM_ALLOC    0x00000002    /* vmalloc() */
  10. #define VM_MAP        0x00000004    /* vmap()ed pages */
  11. /* bits [20..32] reserved for arch specific ioremap internals */
  12.  
  13. struct vm_struct {
  14.     void            *addr;
  15.     unsigned long        size;
  16.     unsigned long        flags;
  17.     struct page        **pages;
  18.     unsigned int        nr_pages;
  19.     unsigned long        phys_addr;
  20.     struct vm_struct    *next;
  21. };
  22.  
  23. /*
  24.  *    Highlevel APIs for driver use
  25.  */
  26. extern void *vmalloc(unsigned long size);
  27. extern void *vmalloc_exec(unsigned long size);
  28. extern void *vmalloc_32(unsigned long size);
  29. extern void *__vmalloc(unsigned long size, int gfp_mask, pgprot_t prot);
  30. extern void vfree(void *addr);
  31.  
  32. extern void *vmap(struct page **pages, unsigned int count,
  33.             unsigned long flags, pgprot_t prot);
  34. extern void vunmap(void *addr);
  35.  
  36. /*
  37.  *    Lowlevel-APIs (not for driver use!)
  38.  */
  39. extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags);
  40. extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags,
  41.                     unsigned long start, unsigned long end);
  42. extern struct vm_struct *remove_vm_area(void *addr);
  43. extern int map_vm_area(struct vm_struct *area, pgprot_t prot,
  44.             struct page ***pages);
  45. extern void unmap_vm_area(struct vm_struct *area);
  46.  
  47. /*
  48.  *    Internals.  Dont't use..
  49.  */
  50. extern rwlock_t vmlist_lock;
  51. extern struct vm_struct *vmlist;
  52.  
  53. #endif /* _LINUX_VMALLOC_H */
  54.